package pers.jl.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import pers.jl.dto.SetmealDto;
import pers.jl.entity.Setmeal;

import java.util.List;

/**
 * <p>
 * 套餐 服务类
 * </p>
 *
 * @author luge
 * @since 2023-04-22
 */
public interface ISetmealService extends IService<Setmeal> {

    /**
     * 分页查询，需要返回SetmealDto的分页对象，带有分类名称
     * @param page
     * @param pageSize
     * @return
     */
    Page<SetmealDto> getWithdCategoryName(int page, int pageSize,String name);

    /**
     * 同时保存套餐还有套餐与菜品的对应关系
     * @param setmealDto
     */
    void saveWithDish(SetmealDto setmealDto);

    /**
     * 套餐状态更改(单个或批量)
     * @param status
     * @param ids
     * @return
     */
    void changeManyStatus(int status,List<Long> ids);

    /**
     * 套套餐删除功能(单个删除或批量删除)
     * @param ids
     */
    void deleteWithDish(List<Long> ids);

    /**
     * 修改套餐
     * 根据套餐id查出套餐所有信息(套餐和套餐菜品信息)，进行回显。
     * @param id
     * @return
     */
    SetmealDto getWithDish(Long id);

    /**
     * 修改套餐
     * 保存修改，先更新套餐，然后删除原有套餐信息，再插入新套餐信息
     * @param setmealDto
     * @return
     */
    void updateWithDish(SetmealDto setmealDto);

    // 根据套餐分类id，查出所有套餐
    List<Setmeal> listForSetmeals(Setmeal setmeal);
}
